Skip to content

fix[zwatch]: add hidden column to AlarmVO/EventSubscriptionVO#3675

Closed
zstack-robot-1 wants to merge 5 commits into5.5.12from
sync/chao.he/fix/ZSTAC-83966@@2
Closed

fix[zwatch]: add hidden column to AlarmVO/EventSubscriptionVO#3675
zstack-robot-1 wants to merge 5 commits into5.5.12from
sync/chao.he/fix/ZSTAC-83966@@2

Conversation

@zstack-robot-1
Copy link
Copy Markdown
Collaborator

ZSTAC-83966 Plan D — SQL migration V5.5.13

CALL ADD_COLUMN for AlarmVO.hidden and EventSubscriptionVO.hidden.

sync from gitlab !9535

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 3, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

在数据库升级脚本 conf/db/upgrade/V5.5.12__schema.sql 中,为 AlarmVOEventSubscriptionVOActiveAlarmVO 三个表各新增了一个名为 hidden 的列,类型为 TINYINT(1),默认值为 '0',非必填,通过 CALL ADD_COLUMN(...) 引入。(50字以内)

Changes

Cohort / File(s) Summary
数据库 schema 升级
conf/db/upgrade/V5.5.12__schema.sql
AlarmVOEventSubscriptionVOActiveAlarmVO 三个表各添加 hidden 列(TINYINT(1),默认 '0',非必填),通过 CALL ADD_COLUMN(...) 执行。

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰✨ 新列悄然钻土,
三处藏身初成形,
默默为零守旧序,
微风唤来悄声跑,
兔子点头笑开颜。

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed 标题符合要求的格式 [scope]: ,共61个字符,在72字符限制内。标题清晰准确地概括了变更的主要内容:向AlarmVO和EventSubscriptionVO添加hidden列。
Description check ✅ Passed 描述与变更集相关,提到了SQL迁移V5.5.13、ADD_COLUMN操作、涉及的VO类和相关的JIRA问题ZSTAC-83966。描述内容足够清晰,表明了变更的目的和来源。
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch sync/chao.he/fix/ZSTAC-83966@@2

Comment @coderabbitai help to get the list of available commands and usage tips.

@MatheMatrix MatheMatrix force-pushed the sync/chao.he/fix/ZSTAC-83966@@2 branch from dc75a52 to 60c6f16 Compare April 3, 2026 10:11
@MatheMatrix
Copy link
Copy Markdown
Owner

Comment from chao.he:

风险评估与解决方案(补充)

  1. 全局 schema 变更风险(AlarmVO/EventSubscriptionVO 增加 hidden 列)
  • 风险:覆盖所有查询路径,需要确保 migration 与查询行为一致。
  • 方案:
    • 迁移后校验:hidden=1 仅出现在 AI UUID 白名单;非 AI 告警/订阅查询结果与改造前一致。
    • 回归矩阵:queryAlarm/queryEventSubscription/queryActiveAlarm 三条链路全覆盖。
  1. syncHiddenState 触发时机风险(仅启动+license变更)
  • 风险:license 自然过期未触发变更事件时,hidden 状态可能存在窗口期。
  • 方案:
    • 增加周期性 reconcile(定时调用 syncHiddenState)以收敛窗口期;
    • 保留现有查询过滤兜底,保障展示层面安全。
  1. 现状说明
  • 当前 check 已复用 LicenseManager.checkAddonAvailability(MaaSBase);
  • migration 采用 ADD_COLUMN 幂等方式,重跑安全。

下一步:按上述方案补充周期性同步并补充覆盖验证。

@MatheMatrix MatheMatrix force-pushed the sync/chao.he/fix/ZSTAC-83966@@2 branch from 60c6f16 to 195e6a0 Compare April 3, 2026 13:25
@ZStack-Robot
Copy link
Copy Markdown
Collaborator

Comment from chao.he:

补充同步说明:本次已将 ZSTAC-83966 的模型级方案扩展到 ActiveAlarm,schema migration 增加:\nCALL ADD_COLUMN('ActiveAlarmVO', 'hidden', 'TINYINT(1)', 0, '0');\n\n沿用现有 ADD_COLUMN 幂等机制,可重复执行且无副作用。

@zstack-robot-2
Copy link
Copy Markdown
Collaborator

Comment from ye.zou:

Code Review

LGTM ✅ 这个 MR 里的 schema 变更本身没问题:CALL ADD_COLUMN(...) 走现有幂等路径,默认值 0 也兼容老数据,当前 HEAD 没看到这边的阻断项。

结论: APPROVE ✅
回归风险: 低
说明: 当前这一轮 Jira 仍是 BLOCK,是因为配套 premium MR !13418 还有阻断项,不是这个 schema MR 自身的问题。


Review Tracker: ZSTAC-83966

Rounds: R1=block

Findings

1. CRIT | 正确性 | premium

  • File: zwatch/src/main/java/org/zstack/zwatch/alarm/AlarmHiddenQueryFilter.java:24
  • Finding: hidden 方案当前只覆盖 AlarmVO/EventSubscriptionVO,没有覆盖 ActiveAlarm 链路。APIQueryActiveAlarmMsg 没有额外过滤,ActiveAlarmVO/ActiveAlarmVO_ 没有 hidden 字段,AISystemAlarmManagerImpl.syncHiddenState() 也不更新 ActiveAlarmVO,但测试却断言 queryActiveAlarm 会隐藏 AI active alarms。当前实现与测试预期、以及 zstack schema 新增的 ActiveAlarmVO.hidden 不一致,license 关闭后 AI active alarms 仍会从查询结果漏出来。
  • Suggestion: 给 ActiveAlarmVO/ActiveAlarmVO_ 补 hidden 字段,在 syncHiddenState() 同步 ActiveAlarmVO.hidden,并给 APIQueryActiveAlarmMsg 补 AddExtraConditionToQueryExtensionPoint;随后补一条验证 license 变更前后 queryActiveAlarm 行为的回归测试。

Progress Table

# Sev Cat Repo File R1
1 CRIT 正确性 premium AlarmHiddenQueryFilter.java 🔴

Progress: ░░░░░░░░░░ 0/1 resolved (0%)
1 critical issue(s) still open

@MatheMatrix MatheMatrix force-pushed the sync/chao.he/fix/ZSTAC-83966@@2 branch from 195e6a0 to b01ef35 Compare April 8, 2026 08:58
@ZStack-Robot
Copy link
Copy Markdown
Collaborator

Comment from gitlab:

自上次添加REVIEWED标签(2026-04-03 21:50:26.000Z)后, 有新的COMMIT更新(2026-04-08 16:57:49.990Z), 所以移除了REVIEWED标签

@MatheMatrix MatheMatrix force-pushed the sync/chao.he/fix/ZSTAC-83966@@2 branch from b01ef35 to 81c66ba Compare April 9, 2026 10:16
@MatheMatrix
Copy link
Copy Markdown
Owner

Comment from chao.he:

已处理:

  • zstack 最新提交:81c66ba669;配套 premium 最新提交:c39a92c114

当前联动结论:

  • 199 远端 ./runMavenProfile premium 已通过;
  • 当前剩余 blocker 不在 schema / hidden 字段层,而在 premium 侧 ModelServiceCase 运行时的 TfZstackPortSync NPE;
  • 后续联动结果以人工验证为准。

@zstack-robot-1
Copy link
Copy Markdown
Collaborator Author

Comment from chao.he:

已处理:

  • zstack MR 9535 与 premium MR 13418 都已 rebase 到最新 upstream/5.5.12 并 force-push;
  • zstack 最新提交:81c66ba669;premium 最新提交:c39a92c114

当前联动结论:

  • 199 远端 ./runMavenProfile premium 已通过;
  • 当前剩余 blocker 不在 hidden 字段 schema 层,而在 premium 侧 ModelServiceCase 运行期的 TfZstackPortSync NPE;
  • 后续联动结果以人工验证为准。

@MatheMatrix MatheMatrix force-pushed the sync/chao.he/fix/ZSTAC-83966@@2 branch from 81c66ba to 164215e Compare April 10, 2026 12:57
…ll backup

Remove try-catch around executeBatch since AJ AsyncBackupAspect already
wraps Completion/ReturnValueCompletion pointcuts. The try-catch caused
double handleFailure when executeBatch threw after completion callback.

Fix ReturnValueCoalesceQueue passing null backup to batchCompletion,
which caused AJ to re-throw instead of swallowing exceptions.

Resolves: ZSTAC-83039

Change-Id: I3b565ba68fa601b33adb4d6b15d0ab4248b5a4da
@MatheMatrix
Copy link
Copy Markdown
Owner

Comment from gitlab:

自上次添加REVIEWED标签(2026-04-14 17:56:34.000Z)后, 有新的COMMIT更新(2026-04-15 10:02:52.834Z), 所以移除了REVIEWED标签

liang-hanyu and others added 3 commits April 15, 2026 11:40
DBImpact

Resolves/Related: ZSTAC-84259

Change-Id: I6f67716c7a616d706b7376637766747678766e6a
<fix>[conf]: bump version to 5.5.16

See merge request zstackio/zstack!9624
<fix>[thread]: remove redundant try-catch in CoalesceQueue and fix null backup

See merge request zstackio/zstack!9621
@ZStack-Robot
Copy link
Copy Markdown
Collaborator

Comment from chao.he:

CI fix applied for TestGenerateSDK failure (ClassInfo is neither JRE class nor ZStack class).

Pushed commit 58c520b3a7ef91cbfbc5933746ff135504526a0e to this MR branch (fix/ZSTAC-83966@@2):

  • exclude org.zstack.test.* from SDK generation scope
  • skip Groovy runtime metadata types (groovy.*, org.codehaus.groovy.*) in isZStackClass
  • null-safe canonical-name check to avoid edge-case NPE

This addresses the failing log pattern from build_ut_update_sdk_3339661.log and keeps the SDK generator stable for test-only inventory stubs.

@zstack-robot-2
Copy link
Copy Markdown
Collaborator

Comment from chao.he:

SDK 漏提交已补齐并推送:93ce7b8c0645d4019264f61e21fd6d6e70ff9cc0

本次仅同步 CI 日志中缺失的 3 个文件:

  • sdk/.../AlarmInventory.java
  • sdk/.../EventSubscriptionInventory.java
  • sdk/.../ActiveAlarmInventory.java

未触碰其他业务代码。请按同一流水线重跑。

@MatheMatrix MatheMatrix force-pushed the sync/chao.he/fix/ZSTAC-83966@@2 branch from 93ce7b8 to 80083cb Compare April 15, 2026 07:53
- add hidden columns for AlarmVO/EventSubscriptionVO/ActiveAlarmVO in upgrade script
- exclude test-only classes and groovy runtime metadata from sdk data structure generation
- sync generated sdk hidden(Boolean) fields for alarm/event/active alarm inventories

Resolves: ZSTAC-83966

Change-Id: Ic660df81e306f8cb64348289604810c27dd63ae0
@MatheMatrix MatheMatrix force-pushed the sync/chao.he/fix/ZSTAC-83966@@2 branch from 80083cb to 6b42f85 Compare April 15, 2026 07:56
@zstack-robot-1 zstack-robot-1 deleted the sync/chao.he/fix/ZSTAC-83966@@2 branch April 15, 2026 08:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants